﻿using System;
using System.Threading;
using System.Threading.Tasks;

namespace Quartz.NET.Newer.WindowsFormsApp
{
    /// <summary>
    /// 你好作业
    /// </summary>
    [DisallowConcurrentExecution]  // 禁止重复进入，但是没有跳过，如果任务卡住，则下一次执行实例也会创建，在上一次执行完毕后会立即进入
    //[PersistJobDataAfterExecution]
    public class HelloJob : IJob
    {
        public Task Execute(IJobExecutionContext context)
        {
            Console.WriteLine($@"开始 任务执行时间：{DateTime.Now}");
            Console.WriteLine($@"开始 下一次触发时间：{context.Trigger.GetNextFireTimeUtc()?.ToLocalTime()}");
            Console.WriteLine($@"Greetings from HelloJob! Start。{context.FireInstanceId}");
            Thread.Sleep(TimeSpan.FromSeconds(7));
            Console.WriteLine($@"Greetings from HelloJob! End。{context.FireInstanceId}");
            Console.WriteLine($@"结束 任务执行时间：{DateTime.Now}");
            Console.WriteLine($@"结束 下一次触发时间：{context.Trigger.GetNextFireTimeUtc()?.ToLocalTime()}");
            return Task.CompletedTask;
        }
    }
}